﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class DanhMuc_ChuyenSinhHoatDoan : System.Web.UI.Page
{
    SecurityLib.Sec_AES _se = new SecurityLib.Sec_AES(); //dùng kiểu mã hóa này để không bị mất dấu
    public string tendoanvien = "";
    _dbDataContext _db = new _dbDataContext();
    string user = "";
    string madonvi = "";
    protected void Page_Load(object sender, EventArgs e)
    {
        
        tendoanvien = _se.Decrypt(Request.QueryString["nameunionists"].Replace(" ","+"), "gold",128); //gold là key giải mã, 128 là bit
        user = Page.User.Identity.Name.ToString().Trim();
        madonvi = MemberShip_ASP.GetMaDonViFromUserName(user);
        if (!IsPostBack)
        {
            btnclose.Attributes.Add("onClick", "javascript:history.back(); return false;");
            BindCungCoSoDoan();
        }
    }
    private void BindCungCoSoDoan()
    {
        var list = _db.tblCoSoDoans.Where(r => r.TrucThuoc == madonvi);
        ListItem item = new ListItem("---Chọn đơn vị---","-1");
        drlcungcosodoan.Items.Add(item);
        foreach (var items in list)
        {
            item = new ListItem(items.TenDonVi.Trim(), items.MaDonVi.Trim());
            drlcungcosodoan.Items.Add(item);
        }
    }
    private void BindKhacCoSoDoan()
    {
        drlchidoankhac.Items.Clear();
        var list = from p in _db.tblCoSoDoans where ((p.TrucThuoc.Trim() == "TDB-0001" && p.MaDonVi.Trim() != madonvi) || p.MaDonVi == "TDB-0001") select p;
        ListItem item = new ListItem("---Chọn đơn vị---", "-1");
        drlchidoankhac.Items.Add(item);
        foreach (var items in list)
        {
            item = new ListItem(items.TenDonVi.Trim(), items.MaDonVi.Trim());
            drlchidoankhac.Items.Add(item);
        }
    }
    protected void rdbkhaccsd_CheckedChanged(object sender, EventArgs e)
    {
        if (rdbkhaccsd.Checked == true)
        {
            lbldscsd.Visible = true;
            drldanhsachcosodoan.Visible = true;
            BindKhacCoSoDoan();
            drlcungcosodoan.Items.Clear();
            drldanhsachcosodoan.Items.Clear();
        }
        else
        {
            lbldscsd.Visible = false;
            drldanhsachcosodoan.Visible = false;
        }
    }
    protected void rdbcungcosodoan_CheckedChanged(object sender, EventArgs e)
    {
        if (rdbcungcosodoan.Checked == true)
        {
            lbldscsd.Visible = false;
            drldanhsachcosodoan.Visible = false;
            BindCungCoSoDoan();
            drldanhsachcosodoan.Items.Clear();
        }
    }
    protected void rdbdonvikhac_CheckedChanged(object sender, EventArgs e)
    {
        if (rdbdonvikhac.Checked == true)
        {
            lbldscsd.Visible = false;
            drldanhsachcosodoan.Visible = false;
            drlcungcosodoan.Items.Clear();
            drlchidoankhac.Items.Clear();
            drldanhsachcosodoan.Items.Clear();
        }
    }
    protected void drlchidoankhac_SelectedIndexChanged(object sender, EventArgs e)
    {
        drldanhsachcosodoan.Items.Clear();
        string id = drlchidoankhac.SelectedValue.ToString();
        var list = _db.tblCoSoDoans.Where(r => r.TrucThuoc ==id);
        ListItem item=new ListItem("---Chọn đơn vị---","-1");
        drldanhsachcosodoan.Items.Add(item);
        foreach (var items in list)
        {
            item = new ListItem(items.TenDonVi.Trim(), items.MaDonVi.Trim());
            drldanhsachcosodoan.Items.Add(item);
        }
    }
    protected void btnchuyen_Click(object sender, EventArgs e)
    {
        string donvicu = MemberShip_ASP.GetMaDonViFromUserName(Page.User.Identity.Name);
        string tendonvicu=_db.tblCoSoDoans.Single(r=>r.MaDonVi.Trim()==donvicu).TenDonVi.Trim();
        string madoanvien=_se.Decrypt(Request.QueryString["codeunionists"].Replace(" ","+"),"gold",128);

        if (rdbcungcosodoan.Checked == true)
        {
            if (drlcungcosodoan.SelectedValue.ToString() == "-1")
            {
                SecurityLib.ToolsMore.ShowPopUpMsg("Chưa chọn đơn vị chuyển đến", this.Page);
                return;
            }
            else
            {
                //doi ma don vi sang don vi moi
                string donvichuyenden = drlcungcosodoan.SelectedValue.ToString();
                //tim ma doan vien moi
                string strmadoanvien = "";
                try { strmadoanvien = donvichuyenden.Trim().Substring(4) + string.Format("{0:00000000}", CatalogAccess.GetLastMaDoanVienCuaDonVi(donvichuyenden)); }
                catch { strmadoanvien = string.Format("{0:00000000}", CatalogAccess.GetLastMaDoanVienCuaDonVi(donvichuyenden)); }
                int success = _db.ChuyenDoanVien(madoanvien, strmadoanvien, donvichuyenden, tendonvicu);
                if (success != 0)
                {
                    //ghi thông tin chuyển đi vào table chuyển sinh hoạt đoàn
                    tblChuyenCongTacDoan _table = new tblChuyenCongTacDoan();
                    _table.MaDoanVien = strmadoanvien;
                    _table.NgayChuyen = DateTime.Now;
                    _table.DonViChuyenDi = donvicu;
                    _table.DonViChuyenDen = donvichuyenden;
                    _table.KhongCoTrongHeThong = "Đúng";
                    try
                    {
                        _db.tblChuyenCongTacDoans.InsertOnSubmit(_table);
                        _db.SubmitChanges();
                    }
                    catch { lblMessage.Text = "Lỗi khi ghi thông tin"; }
                    lblMessage.Text = "Chuyển thành công.";
                }
                else
                {
                    lblMessage.Text = "Lỗi ghi dữ liệu.";
                }
            }
        }
        else if (rdbkhaccsd.Checked == true)
        {
            if (drldanhsachcosodoan.SelectedValue.ToString() == "-1" || drldanhsachcosodoan.SelectedIndex==-1)
            {
                if (drlchidoankhac.SelectedValue.ToString() == "-1")
                {
                    SecurityLib.ToolsMore.ShowPopUpMsg("Chọn đơn vị cần chuyển đến.",this.Page);
                    return;
                }
                else
                {
                    //doi ma don vi sang don vi moi
                    string donvichuyenden = drlchidoankhac.SelectedValue.ToString();
                    //tim ma doan vien moi
                    string strmadoanvien = "";
                    try { strmadoanvien = donvichuyenden.Trim().Substring(4) + string.Format("{0:00000000}", CatalogAccess.GetLastMaDoanVienCuaDonVi(donvichuyenden)); }
                    catch { strmadoanvien = string.Format("{0:00000000}", CatalogAccess.GetLastMaDoanVienCuaDonVi(donvichuyenden)); }
                    int success = _db.ChuyenDoanVien(madoanvien, strmadoanvien, donvichuyenden, tendonvicu);
                    if (success != 0)
                    {
                        //ghi thông tin chuyển đi vào table chuyển sinh hoạt đoàn
                        tblChuyenCongTacDoan _table = new tblChuyenCongTacDoan();
                        _table.MaDoanVien = strmadoanvien;
                        _table.NgayChuyen = DateTime.Now;
                        _table.DonViChuyenDi = donvicu;
                        _table.DonViChuyenDen = donvichuyenden;
                        _table.KhongCoTrongHeThong = "Đúng";
                        try
                        {
                            _db.tblChuyenCongTacDoans.InsertOnSubmit(_table);
                            _db.SubmitChanges();
                        }
                        catch { lblMessage.Text = "Lỗi khi ghi thông tin"; }
                        lblMessage.Text = "Chuyển thành công.";
                    }
                    else { lblMessage.Text = "Lỗi khi chuyển!"; }
                }
            }
            else
            {
                //doi ma don vi sang don vi moi
                string donvichuyenden = drldanhsachcosodoan.SelectedValue.ToString();
                string strmadoanvien = "";
                try { strmadoanvien = donvichuyenden.Trim().Substring(4) + string.Format("{0:00000000}", CatalogAccess.GetLastMaDoanVienCuaDonVi(donvichuyenden)); }
                catch { strmadoanvien = string.Format("{0:00000000}", CatalogAccess.GetLastMaDoanVienCuaDonVi(donvichuyenden)); }
                    int success = _db.ChuyenDoanVien(madoanvien, strmadoanvien, donvichuyenden, tendonvicu);
                    if (success != 0)
                    {
                    //ghi thông tin chuyển đi vào table chuyển sinh hoạt đoàn
                    tblChuyenCongTacDoan _table = new tblChuyenCongTacDoan();
                    _table.MaDoanVien = strmadoanvien;
                    _table.NgayChuyen = DateTime.Now;
                    _table.DonViChuyenDi = donvicu;
                    _table.DonViChuyenDen = donvichuyenden;
                    _table.KhongCoTrongHeThong = "Đúng";
                    try
                    {
                        _db.tblChuyenCongTacDoans.InsertOnSubmit(_table);
                        _db.SubmitChanges();
                    }
                    catch { lblMessage.Text = "Lỗi khi ghi thông tin"; }
                    lblMessage.Text = "Chuyển thành công.";
                }
                    else { lblMessage.Text = "Lỗi khi chuyển!"; }
            }
        }
        else if (rdbdonvikhac.Checked == true)
        {
            if (txtdonvi.Text == "")
            {
                SecurityLib.ToolsMore.ShowPopUpMsg("Chưa nhập nơi chuyển đi.", this.Page);
                return;
            }
            else
            {
                //doi ma don vi sang don vi moi
                string donvichuyenden = drlcungcosodoan.SelectedValue.ToString();
                try
                {
                    int success = _db.ChuyenDoanVienKhacHeThong(madoanvien);
                    //ghi thông tin chuyển đi vào table chuyển sinh hoạt đoàn
                    tblChuyenCongTacDoan _table = new tblChuyenCongTacDoan();
                    _table.MaDoanVien = madoanvien;
                    _table.NgayChuyen = DateTime.Now;
                    _table.DonViChuyenDi = donvicu;
                    //_table.DonViChuyenDen = donvichuyenden;
                    _table.KhongCoTrongHeThong = txtdonvi.Text;
                    try
                    {
                        _db.tblChuyenCongTacDoans.InsertOnSubmit(_table);
                        _db.SubmitChanges();
                    }
                    catch { lblMessage.Text = "Lỗi khi ghi thông tin"; }
                    lblMessage.Text = "Chuyển thành công.";
                }
                catch { lblMessage.Text = "Lỗi khi chuyển!"; }
            }
        }
    }
}